﻿using System.Collections.Generic;

namespace dk.Helper.Base
{
    public interface IAllies
    {
        /// <summary>
        /// Gets the allies by ID.
        /// </summary>
        IDictionary<int, IAlly> AlliesByID { get; }

        /// <summary>
        /// Gets the allies by tag.
        /// </summary>
        IDictionary<string, IAlly> AlliesByTag { get; }

        /// <summary>
        /// Adds the specified ally.
        /// </summary>
        /// <param name="ally">The ally.</param>
        void Add(IAlly ally);

        /// <summary>
        /// Determines whether this instance contains the specified ally.
        /// </summary>
        /// <param name="ally">The ally.</param>
        /// <returns>
        ///   <c>true</c> if this instance contains the specified ally; otherwise, <c>false</c>.
        /// </returns>
        bool Contains(IAlly ally);

        /// <summary>
        /// Removes the specified ally.
        /// </summary>
        /// <param name="ally">The ally.</param>
        void Remove(IAlly ally);
    }
}